package com.example.springboot.controller.uploadFile.breakpointcontinuation;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import java.io.File;

/**
 *
 * 断点续传的技术原理类似于分片上传。
 *
 * 当文件已经上传了一部分之后，断了需要重新开始上传。
 *
 * 那么我们的思路是这样的：
 *
 * 前端先发送一个请求，检查要上传的文件在服务端是否已经存在，如果存在，目前大小是多少。
 * 前端根据已经存在的大小，继续上传文件即可
 *
 * @author chenzhangkun
 * @ClassName BreakpointContinuation
 * @description: TODO
 * @date 2024年12月11日
 */
@RestController
@RequestMapping(value = "/file")
public class BreakpointContinuationController {
	private static final String UPLOAD_DIR = System.getProperty("user.home") + "/uploads/";

	@GetMapping("/check")
	public long checkFile(@RequestParam("filename") String filename) {
		File file = new File(UPLOAD_DIR + filename);
		if (file.exists()) {
			return file.length();
		} else {
			return 0L;
		}
	}




}
